﻿using System;
using System.Collections.Generic;

using SBPweb.Forge.Contracts.Components;

using SBPweb.Communication.Shared.Library.Configuration;
using SBPweb.Communication.Shared.Library.Connections;

namespace SBPweb.Communication.Shared.Library.Contacts
{

    public interface IContactManager : IInitializable, IConfigurationDescriptorApplicant<IContactManagerConfiguration>
    {

        #region Property accessors

        //IMessenger Messenger
        //{
        //    get;
        //}

        IContact Myself
        {
            get;
        }

        List<IContact> ContactList
        {
            get;
        }

        #endregion

        #region Events

        event EventHandler ContactListRequested;

        event EventHandler ContactListReceived;

        event EventHandler<ContactPresenceStateBaseEventArgs> ContactPresenceChanged;

        #endregion

        #region Methods

        void GetContactList();

        #endregion

    }

}